home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / graphics / mandlbx1.arc / MANDLBOX.DOC < prev    next >
Text File  |  1985-11-20  |  6KB  |  148 lines

  1.  
  2.  
  3.         Come Explore Mandelbrot Fractiles 
  4.             with a fast interactive tool
  5.         
  6.                 M A N D L B O X
  7.                             
  8.     Featuring:
  9.             * Low Resolution First (like a Polaroid(TM) developing)
  10.             * Fast Zooming before developing is complete
  11.             * Reduced Calculations in Constant Areas
  12.  
  13.             
  14. ---> FRACTILE MATH:
  15.  
  16. Mandlbox displays the value of M(c) over a region of c and plots its value
  17. as a color on the screen.  M(c) is the function which returns the number of
  18. times one has to iterate on z = z*z + c (starting at z=0) until the magnitude
  19. of z is greater than 2.  And by the way, c and z are imaginary numbers. 
  20. On the screen, the imaginary part is plotted horizontally the real part 
  21. vertically, and the number of iterations determines the color.
  22.  
  23. See the August 1985 issue of Scientific American for more details.
  24.  
  25.  
  26. ---> ZOOMING:
  27.  
  28. M(c) has the interesting property that in certain areas it becomes very
  29. wrinkley, just like sin(1/x) does at x=0. Its interesting to zoom in on 
  30. these areas.
  31.  
  32. To define a sub-area of the screen to zoom into, down-click on one corner
  33. of the desired region and drag the mouse to form the desired rectangle.
  34. Clicking inside the rectangle will cause Mandlbox to expand the area in
  35. the rectangle to full screen. Clicking outside the rectangle will remove 
  36. it. The approximate magnification of the window is shown at the upper left.
  37.  
  38. The good news is that Mandlbox displays a low resolution picture first, and
  39. allows you to select another area to zoom in on even before the current
  40. image has been completed. The bad news is that because the Mandlbox program
  41. is computing much of the time, it only polls the mouse occasionally. 
  42. (when the arrow flashes) Especially at high magnifications, it may be 
  43. necessary to wait one flash between each of the mouse actions: down-clicking, 
  44. dragging to form a box, letting up, and then clicking in the center. 
  45. (Oh, for multiple user processes, which would allow much more interactivity. 
  46. If any one knows another way around this one, let me know.) 
  47.  
  48.  
  49. ---> MENUE FUNCTIONS:
  50.  
  51. The other functions of the program are as follows:
  52.  
  53. ZOOM
  54.     OUT 4X  --         Draw M(c) zoomed out 4x in each dimension.
  55.                 The center of the screen remains the same.
  56.     UNDO LAST ZOOMIN --     Mandlbox maintains a stack of 50 zooms since
  57.                 the start or last DEMO selection (see below).
  58.                 This reverts to the previous scene.
  59.     NUMERICALLY --        Displays the location and size of the current
  60.                 window, in real and imaginary parts. Editing
  61.                 these numbers will move the display. (See 
  62.                 Caveat B)
  63. COLOR
  64.     ROTATE COLORS --    The usual color lookup hack, but none the 
  65.                 less quite catchy.
  66.     SHOW CALC BOXES --    Displays the calculation boxes (see below)
  67.                 on the screen. Try it once or twice.
  68.  
  69. ALGORITHM
  70.     ITER MAX --        Sets the maximum number of times that M(c)
  71.                 will iterate testing for |z|>2 before it 
  72.                 gives up. 256-512 work well, things slow 
  73.                 down above that. (See Caveat B)
  74.  
  75. DEMO    -            Various pretty spots I've found in my perusing,
  76.                 and named just for yucks. Try these first.
  77.  
  78.  
  79.     
  80. ---> Whats new about MandlBOX that's not just your every-day MandelZOOM?
  81.  
  82.  
  83. Mandlbox displays a low-resolution image first so that you can see roughly
  84. where you are. Before its added full resolution, you can zoom into a sub-area.
  85. This is particularly helpful if you know where you're headed.  
  86.  
  87. Low resolution first is acomplished using a fat-bits like technique:
  88. A whole square (a "box" a power of 2 pixels on each side) is drawn using 
  89. the value from only one calculation -- that of the pixel in the upper 
  90. left hand corner. Later the square is divided in quarters. The values of
  91. only three new points must be calcualted, since one is the same as the 
  92. undivided square.
  93.  
  94. Some areas drawn are remarkably constant, and Mandlbox takes advantage of
  95. that to reduce the amount of calculation required. As a box is about to be
  96. divided in quarters, all of its neighbors are examined and if they are
  97. all the same color, Mandlbox just doesn't bother dividing it. This algorithm
  98. works because the Mandelbrot set is connected, and provides a speedup of
  99. a factor of 1.3 to 5. Watch the meter on the upper right corner of the
  100. window. It shows the percentage of all the pixels on the screen which have
  101. been calculated.
  102.  
  103.  
  104.  
  105. ---> SOME TIPS:
  106.  
  107. 1) Mandlbox works best and possibly only on a 16-color low resolution screen.
  108.  
  109. 2) Mandlbox works well on a 520ST with TOS in ROM, providing there isn't
  110. a RAMDISK around. (The array required to hold unsplit boxes is big.)
  111.  
  112. 3) If as you zoom in, the areas bordering solid black become "funny" looking,
  113. (with extra black areas) try upping the iteration count.
  114.  
  115. 4) Zooming in too far will yield fuzzy pictures. Actually this is because of
  116. the inacuracies of the mantissa of single precision floating point. It happens
  117. at magnifications above 500,000.
  118.  
  119. 5) Caveat B (above): For some reason, GEM's FORM_DO doesn't erase the 
  120. characters viewed on the screen when one does <esc>, <bs>, or <del>. 
  121. They are actually erased, but you just see extra on the screen. I didn't 
  122. want to delay release for this one, plus I'm listening if any of you have 
  123. successfully done battle with this one!
  124.  
  125.  
  126. ---> In The Works:
  127.  
  128. Many improvements are contemplated, but I wanted to get something out 
  129. before I got sidetracked. I want to add a scene save-restore to disk,
  130. caching demo scenes on the disk, pan and 2x zoomin/out without total 
  131. recompute, zooms that rotate too, multiple windows with sizing, ordering 
  132. computation by iteration_max (not just resolution), color histograms,
  133. and a movie/animation. If you enjoy using Mandlbox, sending me a few 
  134. "atta-boy's" would help fuel these new extensions.
  135.  
  136. Also contact me if you have any other suggestions for neat extensions.
  137. If you want to take the ball and work on any of these (providing you are
  138. an Atari Developer) let me know.
  139.  
  140. Bug reports are encouraged. Be specific about exactly what causes the 
  141. bug and what doesn't.
  142.  
  143. I am:        Allen King    1-617-449-3359 evenings
  144.         30 Gibson St        
  145.         Needham Ma.    ucbvax!aking@bfly-vax.bbn.com
  146.         02192
  147.                     
  148.